In recent years, computer simulation has been used in various fields due to improvements in calculation capability of computers. The amount of data of a computer simulation result tends to increase with improvements in calculation capability of computers, especially in the field of HPC (High Performance Computing) where the amount of data nowadays is huge compared to that in the past.
FIG. 1 illustrates an example of a visualized computer simulation result. FIG. 1 illustrates flow of a fluid that exists in a cube. In the fluid, molecules constituting the fluid change their positions as time passes. When one focuses on a specific molecule in the fluid and follows movement of the molecule in the fluid as time passes, a trajectory of the movement is called a flow line. Using computer simulation, by defining one or more start points beforehand, multiple flow lines can be calculated from the start points. It is not easy for a person to identify flow lines if only flow lines are drawn among the data of computer simulation because flow lines themselves are lines not having width. Therefore, as illustrated in FIG. 1, flow lines are placed in a 3D-space as tube-shaped objects. In addition, by defining a viewpoint position and applying rendering (drawing process) to objects placed in the 3D-space to obtain a 2D graphical representation viewed from the viewpoint position, visualization of flow lines can be realized.
When performing visualization of flow lines as described above, observation is required from various viewpoint position and viewpoint directions. In this case, it is known to represent a surface of a tube having a 3D form by multiple polygons. Shading with respect to a specific light source is applied to the tube. Texture mapping is performed for coloring and texturing depending on a physical value (for example, fluid speed, temperature, or the like) at each position on the tube. Then, rendering is performed to form a 2D image viewed from a specific viewpoint position and a viewpoint direction. The amount of data of computer simulation is huge (terabytes to petabytes of data) compared to that required conventionally. Therefore, a lot more time is required for an execution of rendering than required conventionally. Moreover, if a viewpoint position or a viewpoint direction is changed, rendering needs to be executed again.
For example, when displaying a person in a VR space, a technology is known in that a model is captured on multiple planes, at least one plane among these multiple planes is selected based on information about a viewpoint position and a viewpoint direction, and a display process is performed based only on information of the selected plane. However, with this technology, multiple planes for a model need to be provided beforehand corresponding to viewpoint positions and viewpoint directions, which increases the number of planes to be provided.
Also, a technology is known in that multiple projection planes are set around an object with 3D image data, parallel projection is made on each of projection planes for a surface of the object that can be viewed, and a texture image is generated that has color data of the surfaces of the object obtained from the projection images on the projection planes. Then, 3D form data is generated that is added with related information that represents a correspondence with a texture image of each of these projection planes. 2D image data is generated that displays the object represented by the 3D form data viewed from an arbitrary viewpoint direction, and a multiplicity of mapping processes is applied to the texture image of each of the projection planes based on the texture related information to reproduce the object.
Also, a technology is known in that based on objects, a light source, and a viewpoint set in a 3D virtual space, model data of an object is transformed into a coordinate system of the viewpoint to generate a 2D image representing a scene of the space, then, the model data represented by the viewpoint coordinate system is projected on a projection plane, and a rendering method for each of the objects is switched by considering a direction from the viewpoint to the object of interest as a reference.
FIG. 2A illustrates tube-shaped wire frames that visualize flow lines represented by a number of polygons contained in the wire frames. Also, FIG. 2B illustrates a flow of a visualization process of a flow line. As described above, the number of polygons increases year by year. Also, a physical value exists at each position in the space. Examples of a physical value include a scalar value such as vorticity, a vector value such as velocity and stress, and a tensor value such as shear stress. First, at Step 210, data such as a simulation result is received as input. Next, at Step 220, a process such as filtering is applied to numerical data if necessary. Then, at Step 230, a flow line is calculated first. As illustrated in FIG. 2A, a tube-shaped form with a number of polygons is generated to represent the flow line having a tube shape. Next, at Step 240, shading or the like is applied by a graphical process, and then, rendering is performed. Physical values are represented using color on the polygons.
As above, physical values obtained with computer simulation increase in recent years, and tube shapes having a lot more number of polygons than those conventionally processed need to be given color and shading for rendering of a 2D image. This requires a huge amount of calculation and a long time compared to those required conventionally.
In addition, for an ordinary 3D visualization process where a transmission process for a hidden surface that blocks a viewpoint is not performed or the viewpoint is not moved, shapes that cannot be viewed from the viewpoint on the hidden surface side do not need to be calculated for visualization. However, for visualization of computer simulation data or the like where the viewpoint needs to be moved freely for observation, calculation for visualization is required for the shapes that cannot be view from the viewpoint on the hidden surface side.